package com.cc.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cc.pojo.domain.Role;
import com.cc.pojo.domain.User;
import com.cc.pojo.dto.UserPageDto;
import com.cc.pojo.vo.UserVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper extends BaseMapper<User> {

    List<UserVo> selectUser(UserPageDto userPageDto);

    UserVo getByUserId(Integer userId);

    /**
     * 添加用户角色关系
     * @param userId
     * @param roleId
     * @return
     */
    @Insert("insert into cc_user_role(user_id,role_id) values(#{userId},#{roleId})")
    Boolean addRole(Long userId, Integer roleId);

    /**
     * 删除用户和角色之间的关系
     * @param userId
     * @param roleId
     * @return
     */
    @Delete("delete from cc_user_role where user_id=#{userId} and role_id=#{roleId}")
    Boolean removeRole(Long userId, Integer roleId);

    /**
     * 根据用户id查询所有角色key
     * @param loginId
     * @return
     */
    List<String> getRoleKeyByUserId(Object loginId);

    /**
     *根据用户id查询所有角色
     * @param loginId
     * @return
     */
    List<Role> getRoleByUserId(Long loginId);

    /**
     * 删除用户和角色之间的关系
     * @param userId
     * @return
     */
    Boolean removeRoles(Long userId);

    /**
     * 添加所有角色和用户之间的关系
     * @param userId
     * @param roleId
     * @return
     */
    Boolean addRoles(Long userId, List<Long> roleId);
}